﻿<?xml version="1.0" encoding="utf-8"?>
<ProjectSchemaDefinitions xmlns="http://schemas.microsoft.com/build/2009/properties" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Rule
    Name="CsCppConverter"
    PageTemplate="tool"
    DisplayName="C# to C++ Converter"
    Order="200">
    <Rule.DataSource>
      <DataSource
        Persistence="ProjectFile"
        ItemType="CsCppConverter" />
    </Rule.DataSource>
    <Rule.Categories>
      <Category
        Name="General">
        <Category.DisplayName>
          <sys:String>General</sys:String>
        </Category.DisplayName>
      </Category>
      <Category
        Name="Command Line"
        Subtype="CommandLine">
        <Category.DisplayName>
          <sys:String>Command Line</sys:String>
        </Category.DisplayName>
      </Category>
    </Rule.Categories>
    <StringListProperty
      Name="Inputs"
      Category="Command Line"
      IsRequired="true"
      Switch="/complist:">
     <StringListProperty.DataSource>
       <DataSource
          Persistence="ProjectFile"
          ItemType="CsCppConverter"
          SourceType="Item" />
     </StringListProperty.DataSource>
   </StringListProperty>
    <BoolProperty
      Name="NoLogo"
      HelpUrl="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrflicensecompilerlcexe.asp"
      DisplayName="Suppress Startup Banner"
      Description="Suppress the display of the startup banner and information messages.     (/nologo)"
      Switch="/nologo" />
    <StringProperty
      Name="SourceDirectory"
      DisplayName="Source Directory"
      Description="Specifies the directory in which to place the output .cpp/.h files and reads .cs files.     (/srcdir:[directory])"
      Switch="/srcdir:&quot;[value]&quot;" />
    <StringProperty
      Name="LibraryWinRTDirectories"
      DisplayName="Library WinRT Directories"
      Description="Specifies the directories to locate .winmd files (Platform.winmd and Windows.winmd location must be provided).     (/libwinrtdirs:[directory;...])"
      Switch="/libwinrtdirs:&quot;[value]&quot;" />	  
    <StringProperty
      Name="CommandLineTemplate"
      DisplayName="Command Line"
      Visible="False"
      IncludeInCommandLine="False" />
    <DynamicEnumProperty
    Name="CsCppConverterBeforeTargets"
    Category="General"
    EnumProvider="Targets"
    IncludeInCommandLine="False">
      <DynamicEnumProperty.DisplayName>
        <sys:String>Execute Before</sys:String>
      </DynamicEnumProperty.DisplayName>
      <DynamicEnumProperty.Description>
        <sys:String>Specifies the targets for the build customization to run before.</sys:String>
      </DynamicEnumProperty.Description>
      <DynamicEnumProperty.ProviderSettings>
        <NameValuePair
          Name="Exclude"
          Value="^CsCppConverterBeforeTargets|^Compute" />
      </DynamicEnumProperty.ProviderSettings>
      <DynamicEnumProperty.DataSource>
        <DataSource
          Persistence="ProjectFile"
          ItemType=""
          HasConfigurationCondition="true" />
      </DynamicEnumProperty.DataSource>
    </DynamicEnumProperty>
    <DynamicEnumProperty
      Name="CsCppConverterAfterTargets"
      Category="General"
      EnumProvider="Targets"
      IncludeInCommandLine="False">
      <DynamicEnumProperty.DisplayName>
        <sys:String>Execute After</sys:String>
      </DynamicEnumProperty.DisplayName>
      <DynamicEnumProperty.Description>
        <sys:String>Specifies the targets for the build customization to run after.</sys:String>
      </DynamicEnumProperty.Description>
      <DynamicEnumProperty.ProviderSettings>
        <NameValuePair
          Name="Exclude"
          Value="^CsCppConverterAfterTargets|^Compute" />
      </DynamicEnumProperty.ProviderSettings>
      <DynamicEnumProperty.DataSource>
        <DataSource
          Persistence="ProjectFile"
          ItemType=""
          HasConfigurationCondition="true" />
      </DynamicEnumProperty.DataSource>
    </DynamicEnumProperty>
    <StringListProperty
      Name="Outputs"
      DisplayName="Outputs"
      IncludeInCommandLine="False"
      Visible="False" />
    <StringProperty
      Name="ExecutionDescription"
      DisplayName="Execution Description"
      IncludeInCommandLine="False"
      Visible="False" />
    <StringListProperty
      Name="AdditionalDependencies"
      DisplayName="Additional Dependencies"
      IncludeInCommandLine="False"
      Visible="False" />
    <StringProperty
      Subtype="AdditionalOptions"
      Name="AdditionalOptions"
      Category="Command Line">
      <StringProperty.DisplayName>
        <sys:String>Additional Options</sys:String>
      </StringProperty.DisplayName>
      <StringProperty.Description>
        <sys:String>Additional Options</sys:String>
      </StringProperty.Description>
    </StringProperty>
  </Rule>
  <ItemType
    Name="CsCppConverter"
    DisplayName="C# to C++ Converter" />
  <FileExtension
    Name="*.licx"
    ContentType="CsCppConverter" />
  <ContentType
    Name="CsCppConverter"
    DisplayName="C# to C++ Converter"
    ItemType="CsCppConverter" />
</ProjectSchemaDefinitions>
